OBEX (Object Exchange) is a protocol that is similar to the Hypertext Transfer Protocol (HTTP). It provides the same basic functionality in a lighter fashion using a client-server model. OBEX consists of a protocol and an application framework. The application framework is built on top of the protocol and is used to ensure interoperability between devices and applications using OBEX. The protocol consists of a format for communication between devices and applications and a set of functions. The functions include initiating a connection, disconnecting a connection, sending an object from a client to a server (push operation), and requesting that a server return an object to a client (pull operation).
Presently, there are 3 transports—IP, IrDA, and Bluetooth—that OBEX can operate over. Applications and devices need to know transport specific information before using a particular transport. OBEX applications typically have to be re-written each time a transport using a different protocol becomes available. More transports are becoming available that use OBEX. Re-writing OBEX applications for each new transport is time consuming and destabilizing and adds to both the development and testing effort. A method is needed whereby applications can be run on new transports that become available without having to be re-written.